package com.wonders.hisdoctor.station.project.base.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.wonders.his.common.utils.validator.group.PrimaryGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * <p>药品库存单位字典：此表定义了具有药品库存管理功能的单位，用户定义</p>
 * <p>db_table: DRUG_STORAGE_DEPT</p>
 * @author lwm
 * @date 2021/01/29
 */
@ApiModel("药品库存单位字典：此表定义了具有药品库存管理功能的单位，用户定义")
@Accessors(chain = true)
@Data
@ToString
@TableName("DRUG_STORAGE_DEPT")
public class DrugStorageDept implements Serializable {

    private static final long serialVersionUID = 3431256083467577949L;

    /** `主键` db_field: STORAGE_CODE; desc: 单位代码：唯一标识一个库存单位，可使用单位代码 */
    @ApiModelProperty("单位代码：唯一标识一个库存单位，可使用单位代码")
    @TableId
    @NotNull(message = "单位代码：唯一标识一个库存单位，可使用单位代码不能为空", groups = PrimaryGroup.class)
    @Length(max = 8, message = "`单位代码：唯一标识一个库存单位，可使用单位代码`的长度不能大于8")
    @TableField("STORAGE_CODE")
    private String storageCode;

    /** db_field: STORAGE_NAME; desc: 单位名称 */
    @ApiModelProperty("单位名称")
    @Length(max = 20, message = "`单位名称`的长度不能大于20")
    @TableField("STORAGE_NAME")
    private String storageName;

    /** db_field: STORAGE_TYPE; desc: 单位性质：标识药库、门诊药局、临床药局等 */
    @ApiModelProperty("单位性质：标识药库、门诊药局、临床药局等")
    @Length(max = 8, message = "`单位性质：标识药库、门诊药局、临床药局等`的长度不能大于8")
    @TableField("STORAGE_TYPE")
    private String storageType;

    /** db_field: UPPER_STORAGE_CODE; desc: 上级单位代码 */
    @ApiModelProperty("上级单位代码")
    @Length(max = 8, message = "`上级单位代码`的长度不能大于8")
    @TableField("UPPER_STORAGE_CODE")
    private String upperStorageCode;

}